package com.wang.springframework.aop;

import org.aopalliance.aop.Advice;

/**
 * @author wangjianhua
 * @Description 持有Aop Advice的基本接口
 * 包括在连接点采用的操作以及确定建议适用性的过滤器(filter) 比如说pointcut
 * 此接口不供Spring用户使用 而是考虑到支持不同Advice的通用接口
 * =====Advisor 承担了 Pointcut 和 Advice 的组合，========
 * =====Pointcut 用于获取 JoinPoint，而 Advice 决定于 JoinPoint 执行什么操作。=======
 * @date 2021/9/3/003 13:42
 **/
public interface Advisor {

    /**
     * 返回这个aspect(切面)部分的advice
     * 一个advice可能是一个拦截器链 一个before advice, throws advice等等
     * @return 适用于这个切面的advice
     * @see org.aopalliance.intercept.MethodInterceptor
     * @see BeforeAdvice
     */
    Advice getAdvice();
}
